/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
 var combinationSum4 = function(nums, target) {
    let dp=new Array(target+1).fill(0);
    for(let i of nums){
        if(i<=target){
            dp[i]+=1;
        }
    }
    for(let i=1;i<=target;i++){
        for(let j of nums){
            dp[i]+= i-j>0 ? dp[i-j]:0;
        }
    }
    return dp[target];
};

// 执行用时：
// 92 ms
// , 在所有 JavaScript 提交中击败了
// 50.68%
// 的用户
// 内存消耗：
// 39.6 MB
// , 在所有 JavaScript 提交中击败了
// 31.75%
// 的用户